home *** CD-ROM | disk | FTP | other *** search
/ SGI Enlighten DSM 3.1 / SGI EnlightenDSM 3.1.iso / SCO5X / EMD / bin / postinstall_agent < prev    next >
Text File  |  1999-04-16  |  4KB  |  181 lines

  1. #!/bin/sh
  2. #
  3. #  Enlighten/Events Install  %W%       %G%
  4. #
  5. # ****************************************************************
  6. # Copyright (c) 1990-1999 Enlighten Software Solutions, Inc.
  7. #  ALL RIGHTS RESERVED WORLDWIDE
  8. #  FOR USE ONLY AS DIRECTED IN LICENSE AGREEMENT.
  9. # ****************************************************************
  10.  
  11. # Usage: $0 <trap_host> <community> 
  12. #
  13.  
  14. umask 077
  15.  
  16. PATH=/bin:/usr/bin:/etc:/usr/ucb:/usr/bsd:/usr/etc:$PATH
  17. export PATH
  18.  
  19. appName=`basename $0`
  20. KEY_FILE=/etc/enlighten
  21.  
  22. #########################################################################
  23. # Get a valid key file
  24. #
  25.  
  26. if [ -z "$ENL_KEYS" -o ! -r "$ENL_KEYS" ] ; then
  27.     KEY_FILE=/etc/enlighten
  28. else
  29.     KEY_FILE=$ENL_KEYS
  30. fi
  31.  
  32. if [ ! -r "$KEY_FILE" ] ; then
  33.     echo "$appName: Fatal: Could not read file $KEY_FILE." 1>&2
  34.     echo 1>&2
  35.     if [ -f $KEY_FILE ] ; then
  36.         echo "$appName: Please run $appName as root." 1>&2
  37.         exit 1
  38.     else
  39.         echo "$appName: Reinstall Enlighten on this host." 1>&2
  40.         exit 1
  41.     fi
  42. fi
  43.  
  44. #########################################################################
  45. # Setup ENLIGHTEN. 
  46. #
  47. # First try the environment variable. If that is not set properly,
  48. # override the value with $KEY_FILE's value.
  49. #
  50. # If KEY_FILE is missing, '^enlighten=' is missing from KEY_FILE,
  51. # or the directory is missing, exit.
  52. #
  53.  
  54. if [ ! -d "$ENLIGHTEN" ] ; then
  55.     ENLIGHTEN=""
  56. fi
  57.  
  58. if [ -z "$ENLIGHTEN" ] ; then 
  59.     ENLIGHTEN=`egrep "^enlighten=" $KEY_FILE | cut "-d=" -f2-`
  60.     export ENLIGHTEN
  61. fi
  62.  
  63. if [ -z "$ENLIGHTEN" ] ; then 
  64.     echo "$appName: Fatal: Could not find the Enlighten installation directory." 1>&2
  65.     exit 1
  66. fi
  67.  
  68. if [ ! -d "$ENLIGHTEN" ] ; then 
  69.     echo "$appName: Fatal: The Enlighten directory, $ENLIGHTEN, is missing." 1>&2
  70.     exit 1
  71. fi
  72.  
  73. LOG=/tmp/enlighten.log
  74. BACKUPRC=n
  75.  
  76. SERVICES=/etc/services
  77. ETC_HOSTS=/etc/hosts
  78. CONFIG=$ENLIGHTEN/config/AgentENL.config
  79. CONFIGBAK=$ENLIGHTEN/config/AgentENL.config.bak
  80.  
  81. #########################################################################
  82. # Parse argv
  83.  
  84. COMMUNITY=public
  85. HOST=`uname -n`
  86. MANAGER=
  87. SubDir=bin
  88. upgrade=0
  89.  
  90. if [ $# -ge 1 ]
  91. then
  92.     HOST=$1
  93. fi
  94.  
  95. if [ $# -ge 2 ] 
  96. then
  97.     COMMUNITY=$2
  98. fi
  99.  
  100. if [ $# -ge 3 ] 
  101. then
  102.     upgrade=$3
  103. fi
  104.  
  105. #########################################################################
  106. # Fix /etc/services file to add snmp port definitions
  107.  
  108. #
  109. # these are the reserved port numbers for snmp
  110. #
  111.  
  112. #
  113. # if /etc/services is missing snmp related entries, add them
  114. #
  115.  
  116. if [ -z "`grep snmp $SERVICES`" ] ; then
  117.     echo "snmp            161/udp" >> $SERVICES 
  118.     echo "$appName: Added snmp entry to $SERVICES." 
  119. fi
  120.  
  121. if [ -z "`grep trap $SERVICES`" ] ; then
  122.     echo "snmp-trap       162/udp" >> $SERVICES 
  123.     echo "$appName: Added snmp-trap entry to $SERVICES." 
  124. fi
  125.  
  126. if [ -z "`grep smux $SERVICES`" ] ; then
  127.     echo "smux            199/tcp" >> $SERVICES 
  128.     echo "$appName: Added smux entry to $SERVICES."
  129. fi
  130.  
  131. #########################################################################
  132. # Fix AgentENL.conf file
  133.  
  134. if [ ! -f $CONFIG ]
  135.   then
  136.     echo "$appName: Fatal: Could not find $CONFIG." 2>&1
  137.     exit 1;
  138. fi
  139.  
  140. chown root $CONFIG
  141. chmod 600 $CONFIG
  142.  
  143. if [ ! -w $CONFIG ]
  144.   then
  145.     echo "$appName: Fatal: Could not find/write $CONFIG." 1>&2
  146.     exit 1 ;
  147. fi
  148.  
  149. # If upgrading copy old config file back into place.
  150. # Otherwise, update the file.
  151. #
  152.  
  153. if [ "$upgrade" -eq 1 ] ; then
  154.     if [ -f $CONFIGBAK ] ; then
  155.         cp $CONFIG ${CONFIG}.new
  156.         cp $CONFIGBAK $CONFIG
  157.     fi
  158. else
  159.     OLD_MANAGER=`grep \^MANAGER $CONFIG | awk '{printf "%s",$2}' `
  160.     if [ -z "$OLD_MANAGER" ] ; then
  161.         echo "$appName: Fatal: $CONFIG was corrupt." 1>&2
  162.         exit 1 ;
  163.     fi
  164.  
  165.     OLD_COMMUNITY=`grep \^COMMUNITY $CONFIG | awk '{printf "%s",$2}' `
  166.     if [ -z "$OLD_COMMUNITY" ] ; then
  167.         echo "$appName: Fatal: $CONFIG was corrupt." 1>&2
  168.         exit 1 ;
  169.     fi
  170.  
  171.     cp $CONFIG $CONFIG.bak
  172.     cat $CONFIG | sed -e "s/$OLD_MANAGER/$HOST/" > $CONFIG.tmp
  173.     cat $CONFIG.tmp | sed -e "s/$OLD_COMMUNITY/$COMMUNITY/" > $CONFIG
  174.     rm $CONFIG.tmp
  175. fi
  176.  
  177. echo "$appName: Finished configuration successfully."
  178.  
  179. exit 0
  180.